tg-me.com/csharp_1001_notes/440
Last Update:
Π¦ΠΈΡΡΠΎΠ²ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄ΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ PDF:
β’ ΠΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ»ΡΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡ.
β’ ΠΡΠ» ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°.PKCS#12
(ΡΠ°ΠΉΠ» .pfx
ΠΈΠ»ΠΈ .p12
), Π²ΡΠ΄Π°Π½Π½ΡΠΉ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ΅Π½ΡΡΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ PDF-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ. ΠΠΎΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ PDF-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π½Π° C#:
using BitMiracle.Docotic.Pdf;
using (var pdf = new PdfDocument("document_to_sign.pdf"))
{
var options = new PdfSigningOptions("your_cert.p12", "your_cert_password")
{
DigestAlgorithm = PdfDigestAlgorithm.Sha256,
Format = PdfSignatureFormat.Pkcs7Detached,
Reason = "Testing digital signatures",
Location = "My workplace",
ContactInfo = "[email protected]"
};
pdf.SignAndSave(options, "signed.pdf");
}
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅
"your_cert.p12"
ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° .p12
ΠΈΠ»ΠΈ .pfx
ΠΈ "your_cert_password"
ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ. ΠΠ° GitHub Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ° (ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ PDF-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ https://github.com/BitMiracle/Docotic.Pdf.Samples/tree/master/Samples/Digital%20signatures/SignDocument) Π½Π° C# ΠΈ VB.NET.π ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
@csharp_1001_notes